1. Field of the Invention
The present invention relates to the field of data entry and retrieval and, more particularly, to a method and system for use in annotating a variety of heterogeneous data object types.
2. Description of the Related Art
There are well known methods for capturing and storing explicit knowledge as data, for example, in relational databases, documents, flat files, and various proprietary formats in binary files. Often, such data is analyzed by various parties (e.g., experts, technicians, managers, etc.), resulting in rich interpretive information, commonly referred to as tacit knowledge. However, such tacit knowledge is often only temporarily captured, for example, as cryptic notes in a lab notebook, discussions/conversations, presentations, instant messaging exchanges, e-mails and the like. Because this tacit knowledge is typically not captured in the application environment in which the related data is viewed and analyzed, it is often lost.
One approach to more permanently capture tacit knowledge is to create annotations containing descriptive information about data objects. Virtually any identifiable type of object may be annotated, such as a matrix of data (e.g., a spreadsheet or database table), a text document, or an image. Further, subportions of objects (sub-objects) may be annotated, such as a cell, row, or column in a database table or a section, paragraph, or word in a text document. An indexing scheme is typically used to map each annotation to the annotated data object or sub-object, based on identifying information, typically in the form of an index. The index should provide enough specificity to allow the indexing scheme to locate the annotated data object (or sub-object). Further, to be effective, the indexing scheme should work both ways: given an index, the indexing scheme must be able to locate the annotated data object and, given an object, the indexing scheme must be able to calculate the index for use in classification, comparison, and searching (e.g., to search for annotations for a given data object).
However, a number of challenges are presented when annotations must be made for objects from a variety of different type (i.e., heterogeneous) data sources manipulated by a variety of different application programs, which is a fairly common scenario in modern business enterprises. For example, in a biomedical enterprise, annotations may need to reference text documents (manipulated by a word processor/text editor), experimental data (manipulated by a database or spreadsheet application), genomic data (manipulated by a specialized application), images (manipulated by an image viewing application), and the like.
One challenge is that different types of annotations (i.e., containing different types of information) may be made depending on the type of data object being annotated. Using the examples above, annotations made on portions of a text document may include comments on the text, annotations made on experimental or genomic data may contain information regarding how the data was gathered, validity, or significance of the data. One approach to accommodate the entry of such a diverse group of annotations is to create annotation structures that each contains a set of fields corresponding to the information to be contained in a corresponding annotation. When a user selects a certain type of data object to be annotated, the user may be presented with an interface for entering annotation information based on fields contained in an annotation structure corresponding to selected type of data object.
The type of information contained in annotations may also differ depending on a role of the user creating the annotation and/or a role of the user expected to view the annotation. As an example, technicians, researchers, and managers may all be interested in different types of information (e.g., technicians with equipment used, researchers with the significance of the data gathered, and managers with the progress of a project). Further, certain information may only be available to users acting in a role having a given level of authority.
To accommodate different users, annotation structures may be created that correspond not only to a given type of data object, but also to a given user's role. However, given the many different types of data objects that may be annotated and that users may function in many different types of roles, there may be a large number of different combinations of data types and user roles. As a result, organizing and selecting a proper type of annotation structure for each different combination may present a challenge.
Accordingly, there is a need for methods and systems for organizing and selecting annotation structures corresponding to different combinations of data types and user roles.